package com.hundsun.fmbp.deploy.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.gson.Gson;

/**
 * 用json的方式来满足带有List的对象的深拷贝
 * 
 * @ClassName: CloneUtils
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author chenc
 * @date 2017年5月12日 上午11:25:39
 *
 */
public class CloneUtils {
    private static Logger logger = LoggerFactory.getLogger(CloneUtils.class);

    public static <T> T clone(T t, Class<T> clazz) {
        Gson gson = null;
        try {
            gson = Gson.class.newInstance();
        } catch (InstantiationException e) {
            logger.error(e.getMessage(), e);
        } catch (IllegalAccessException e) {
            logger.error(e.getMessage(), e);
        }
        String json = gson.toJson(t);
        return gson.fromJson(json, clazz);
    }
}
